home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / MediaHandlers.p < prev    next >
Text File  |  1996-05-01  |  12KB  |  350 lines

  1. {
  2.      File:        MediaHandlers.p
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.1
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT MediaHandlers;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MEDIAHANDLERS__}
  28. {$SETC __MEDIAHANDLERS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MediaHandlersIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MEMORY__}
  35. {$I Memory.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __IMAGECOMPRESSION__}
  38. {$I ImageCompression.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MOVIES__}
  41. {$I Movies.p}
  42. {$ENDC}
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48. {$IFC FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE }
  49.  
  50. CONST
  51.     handlerHasSpatial            = $01;
  52.     handlerCanClip                = $02;
  53.     handlerCanMatte                = $04;
  54.     handlerCanTransferMode        = $08;
  55.     handlerNeedsBuffer            = $10;
  56.     handlerNoIdle                = $20;
  57.     handlerNoScheduler            = $40;
  58.     handlerWantsTime            = $80;
  59.     handlerCGrafPortOnly        = $0100;
  60.  
  61. {  media task flags  }
  62.     mMustDraw                    = $08;
  63.     mAtEnd                        = $10;
  64.     mPreflightDraw                = $20;
  65.     mSyncDrawing                = $40;
  66.  
  67. {  media task result flags  }
  68.     mDidDraw                    = $01;
  69.     mNeedsToDraw                = $04;
  70.     mDrawAgain                    = $08;
  71.     mPartialDraw                = $10;
  72.  
  73.     forceUpdateRedraw            = $01;
  74.     forceUpdateNewBuffer        = $02;
  75.  
  76.  
  77. TYPE
  78.     GetMovieCompleteParamsPtr = ^GetMovieCompleteParams;
  79.     GetMovieCompleteParams = RECORD
  80.         version:                INTEGER;
  81.         theMovie:                Movie;
  82.         theTrack:                Track;
  83.         theMedia:                Media;
  84.         movieScale:                TimeScale;
  85.         mediaScale:                TimeScale;
  86.         movieDuration:            TimeValue;
  87.         trackDuration:            TimeValue;
  88.         mediaDuration:            TimeValue;
  89.         effectiveRate:            Fixed;
  90.         timeBase:                TimeBase;
  91.         volume:                    INTEGER;
  92.         width:                    Fixed;
  93.         height:                    Fixed;
  94.         trackMovieMatrix:        MatrixRecord;
  95.         moviePort:                CGrafPtr;
  96.         movieGD:                GDHandle;
  97.         trackMatte:                PixMapHandle;
  98.         inputMap:                QTAtomContainer;
  99.     END;
  100.  
  101.  
  102. CONST
  103.     kMediaVideoParamBrightness    = 1;
  104.     kMediaVideoParamContrast    = 2;
  105.     kMediaVideoParamHue            = 3;
  106.     kMediaVideoParamSharpness    = 4;
  107.     kMediaVideoParamSaturation    = 5;
  108.     kMediaVideoParamBlackLevel    = 6;
  109.     kMediaVideoParamWhiteLevel    = 7;
  110.  
  111. FUNCTION MediaInitialize(mh: MediaHandler; VAR gmc: GetMovieCompleteParams): ComponentResult;
  112.     {$IFC NOT GENERATINGCFM}
  113.     INLINE $2F3C, $0004, $0501, $7000, $A82A;
  114.     {$ENDC}
  115. FUNCTION MediaSetHandlerCapabilities(mh: MediaHandler; flags: LONGINT; flagsMask: LONGINT): ComponentResult;
  116.     {$IFC NOT GENERATINGCFM}
  117.     INLINE $2F3C, $0008, $0502, $7000, $A82A;
  118.     {$ENDC}
  119. FUNCTION MediaIdle(mh: MediaHandler; atMediaTime: TimeValue; flagsIn: LONGINT; VAR flagsOut: LONGINT; {CONST}VAR movieTime: TimeRecord): ComponentResult;
  120.     {$IFC NOT GENERATINGCFM}
  121.     INLINE $2F3C, $0010, $0503, $7000, $A82A;
  122.     {$ENDC}
  123. FUNCTION MediaGetMediaInfo(mh: MediaHandler; h: Handle): ComponentResult;
  124.     {$IFC NOT GENERATINGCFM}
  125.     INLINE $2F3C, $0004, $0504, $7000, $A82A;
  126.     {$ENDC}
  127. FUNCTION MediaPutMediaInfo(mh: MediaHandler; h: Handle): ComponentResult;
  128.     {$IFC NOT GENERATINGCFM}
  129.     INLINE $2F3C, $0004, $0505, $7000, $A82A;
  130.     {$ENDC}
  131. FUNCTION MediaSetActive(mh: MediaHandler; enableMedia: BOOLEAN): ComponentResult;
  132.     {$IFC NOT GENERATINGCFM}
  133.     INLINE $2F3C, $0002, $0506, $7000, $A82A;
  134.     {$ENDC}
  135. FUNCTION MediaSetRate(mh: MediaHandler; rate: Fixed): ComponentResult;
  136.     {$IFC NOT GENERATINGCFM}
  137.     INLINE $2F3C, $0004, $0507, $7000, $A82A;
  138.     {$ENDC}
  139. FUNCTION MediaGGetStatus(mh: MediaHandler; VAR statusErr: ComponentResult): ComponentResult;
  140.     {$IFC NOT GENERATINGCFM}
  141.     INLINE $2F3C, $0004, $0508, $7000, $A82A;
  142.     {$ENDC}
  143. FUNCTION MediaTrackEdited(mh: MediaHandler): ComponentResult;
  144.     {$IFC NOT GENERATINGCFM}
  145.     INLINE $2F3C, $0000, $0509, $7000, $A82A;
  146.     {$ENDC}
  147. FUNCTION MediaSetMediaTimeScale(mh: MediaHandler; newTimeScale: TimeScale): ComponentResult;
  148.     {$IFC NOT GENERATINGCFM}
  149.     INLINE $2F3C, $0004, $050A, $7000, $A82A;
  150.     {$ENDC}
  151. FUNCTION MediaSetMovieTimeScale(mh: MediaHandler; newTimeScale: TimeScale): ComponentResult;
  152.     {$IFC NOT GENERATINGCFM}
  153.     INLINE $2F3C, $0004, $050B, $7000, $A82A;
  154.     {$ENDC}
  155. FUNCTION MediaSetGWorld(mh: MediaHandler; aPort: CGrafPtr; aGD: GDHandle): ComponentResult;
  156.     {$IFC NOT GENERATINGCFM}
  157.     INLINE $2F3C, $0008, $050C, $7000, $A82A;
  158.     {$ENDC}
  159. FUNCTION MediaSetDimensions(mh: MediaHandler; width: Fixed; height: Fixed): ComponentResult;
  160.     {$IFC NOT GENERATINGCFM}
  161.     INLINE $2F3C, $0008, $050D, $7000, $A82A;
  162.     {$ENDC}
  163. FUNCTION MediaSetClip(mh: MediaHandler; theClip: RgnHandle): ComponentResult;
  164.     {$IFC NOT GENERATINGCFM}
  165.     INLINE $2F3C, $0004, $050E, $7000, $A82A;
  166.     {$ENDC}
  167. FUNCTION MediaSetMatrix(mh: MediaHandler; VAR trackMovieMatrix: MatrixRecord): ComponentResult;
  168.     {$IFC NOT GENERATINGCFM}
  169.     INLINE $2F3C, $0004, $050F, $7000, $A82A;
  170.     {$ENDC}
  171. FUNCTION MediaGetTrackOpaque(mh: MediaHandler; VAR trackIsOpaque: BOOLEAN): ComponentResult;
  172.     {$IFC NOT GENERATINGCFM}
  173.     INLINE $2F3C, $0004, $0510, $7000, $A82A;
  174.     {$ENDC}
  175. FUNCTION MediaSetGraphicsMode(mh: MediaHandler; mode: LONGINT; {CONST}VAR opColor: RGBColor): ComponentResult;
  176.     {$IFC NOT GENERATINGCFM}
  177.     INLINE $2F3C, $0008, $0511, $7000, $A82A;
  178.     {$ENDC}
  179. FUNCTION MediaGetGraphicsMode(mh: MediaHandler; VAR mode: LONGINT; VAR opColor: RGBColor): ComponentResult;
  180.     {$IFC NOT GENERATINGCFM}
  181.     INLINE $2F3C, $0008, $0512, $7000, $A82A;
  182.     {$ENDC}
  183. FUNCTION MediaGSetVolume(mh: MediaHandler; volume: INTEGER): ComponentResult;
  184.     {$IFC NOT GENERATINGCFM}
  185.     INLINE $2F3C, $0002, $0513, $7000, $A82A;
  186.     {$ENDC}
  187. FUNCTION MediaSetSoundBalance(mh: MediaHandler; balance: INTEGER): ComponentResult;
  188.     {$IFC NOT GENERATINGCFM}
  189.     INLINE $2F3C, $0002, $0514, $7000, $A82A;
  190.     {$ENDC}
  191. FUNCTION MediaGetSoundBalance(mh: MediaHandler; VAR balance: INTEGER): ComponentResult;
  192.     {$IFC NOT GENERATINGCFM}
  193.     INLINE $2F3C, $0004, $0515, $7000, $A82A;
  194.     {$ENDC}
  195. FUNCTION MediaGetNextBoundsChange(mh: MediaHandler; VAR when: TimeValue): ComponentResult;
  196.     {$IFC NOT GENERATINGCFM}
  197.     INLINE $2F3C, $0004, $0516, $7000, $A82A;
  198.     {$ENDC}
  199. FUNCTION MediaGetSrcRgn(mh: MediaHandler; rgn: RgnHandle; atMediaTime: TimeValue): ComponentResult;
  200.     {$IFC NOT GENERATINGCFM}
  201.     INLINE $2F3C, $0008, $0517, $7000, $A82A;
  202.     {$ENDC}
  203. FUNCTION MediaPreroll(mh: MediaHandler; time: TimeValue; rate: Fixed): ComponentResult;
  204.     {$IFC NOT GENERATINGCFM}
  205.     INLINE $2F3C, $0008, $0518, $7000, $A82A;
  206.     {$ENDC}
  207. FUNCTION MediaSampleDescriptionChanged(mh: MediaHandler; index: LONGINT): ComponentResult;
  208.     {$IFC NOT GENERATINGCFM}
  209.     INLINE $2F3C, $0004, $0519, $7000, $A82A;
  210.     {$ENDC}
  211. FUNCTION MediaHasCharacteristic(mh: MediaHandler; characteristic: OSType; VAR hasIt: BOOLEAN): ComponentResult;
  212.     {$IFC NOT GENERATINGCFM}
  213.     INLINE $2F3C, $0008, $051A, $7000, $A82A;
  214.     {$ENDC}
  215. FUNCTION MediaGetOffscreenBufferSize(mh: MediaHandler; VAR bounds: Rect; depth: INTEGER; ctab: CTabHandle): ComponentResult;
  216.     {$IFC NOT GENERATINGCFM}
  217.     INLINE $2F3C, $000A, $051B, $7000, $A82A;
  218.     {$ENDC}
  219. FUNCTION MediaSetHints(mh: MediaHandler; hints: LONGINT): ComponentResult;
  220.     {$IFC NOT GENERATINGCFM}
  221.     INLINE $2F3C, $0004, $051C, $7000, $A82A;
  222.     {$ENDC}
  223. FUNCTION MediaGetName(mh: MediaHandler; VAR name: Str255; requestedLanguage: LONGINT; VAR actualLanguage: LONGINT): ComponentResult;
  224.     {$IFC NOT GENERATINGCFM}
  225.     INLINE $2F3C, $000C, $051D, $7000, $A82A;
  226.     {$ENDC}
  227. FUNCTION MediaForceUpdate(mh: MediaHandler; forceUpdateFlags: LONGINT): ComponentResult;
  228.     {$IFC NOT GENERATINGCFM}
  229.     INLINE $2F3C, $0004, $051E, $7000, $A82A;
  230.     {$ENDC}
  231. FUNCTION MediaGetDrawingRgn(mh: MediaHandler; VAR partialRgn: RgnHandle): ComponentResult;
  232.     {$IFC NOT GENERATINGCFM}
  233.     INLINE $2F3C, $0004, $051F, $7000, $A82A;
  234.     {$ENDC}
  235. FUNCTION MediaGSetActiveSegment(mh: MediaHandler; activeStart: TimeValue; activeDuration: TimeValue): ComponentResult;
  236.     {$IFC NOT GENERATINGCFM}
  237.     INLINE $2F3C, $0008, $0520, $7000, $A82A;
  238.     {$ENDC}
  239. FUNCTION MediaInvalidateRegion(mh: MediaHandler; invalRgn: RgnHandle): ComponentResult;
  240.     {$IFC NOT GENERATINGCFM}
  241.     INLINE $2F3C, $0004, $0521, $7000, $A82A;
  242.     {$ENDC}
  243. FUNCTION MediaGetNextStepTime(mh: MediaHandler; flags: INTEGER; mediaTimeIn: TimeValue; VAR mediaTimeOut: TimeValue; rate: Fixed): ComponentResult;
  244.     {$IFC NOT GENERATINGCFM}
  245.     INLINE $2F3C, $000E, $0522, $7000, $A82A;
  246.     {$ENDC}
  247. FUNCTION MediaSetNonPrimarySourceData(mh: MediaHandler; inputIndex: LONGINT; dataDescriptionSeed: LONGINT; dataDescription: Handle; data: UNIV Ptr; dataSize: LONGINT; asyncCompletionProc: ICMCompletionProcRecordPtr; transferProc: ProcPtr; refCon: UNIV Ptr): ComponentResult;
  248.     {$IFC NOT GENERATINGCFM}
  249.     INLINE $2F3C, $0020, $0523, $7000, $A82A;
  250.     {$ENDC}
  251. FUNCTION MediaChangedNonPrimarySource(mh: MediaHandler; inputIndex: LONGINT): ComponentResult;
  252.     {$IFC NOT GENERATINGCFM}
  253.     INLINE $2F3C, $0004, $0524, $7000, $A82A;
  254.     {$ENDC}
  255. FUNCTION MediaTrackReferencesChanged(mh: MediaHandler): ComponentResult;
  256.     {$IFC NOT GENERATINGCFM}
  257.     INLINE $2F3C, $0000, $0525, $7000, $A82A;
  258.     {$ENDC}
  259. FUNCTION MediaGetSampleDataPointer(mh: MediaHandler; sampleNum: LONGINT; VAR dataPtr: Ptr; VAR dataSize: LONGINT; VAR sampleDescIndex: LONGINT): ComponentResult;
  260.     {$IFC NOT GENERATINGCFM}
  261.     INLINE $2F3C, $0010, $0526, $7000, $A82A;
  262.     {$ENDC}
  263. FUNCTION MediaReleaseSampleDataPointer(mh: MediaHandler; sampleNum: LONGINT): ComponentResult;
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $2F3C, $0004, $0527, $7000, $A82A;
  266.     {$ENDC}
  267. FUNCTION MediaTrackPropertyAtomChanged(mh: MediaHandler): ComponentResult;
  268.     {$IFC NOT GENERATINGCFM}
  269.     INLINE $2F3C, $0000, $0528, $7000, $A82A;
  270.     {$ENDC}
  271. FUNCTION MediaSetTrackInputMapReference(mh: MediaHandler; inputMap: QTAtomContainer): ComponentResult;
  272.     {$IFC NOT GENERATINGCFM}
  273.     INLINE $2F3C, $0004, $0529, $7000, $A82A;
  274.     {$ENDC}
  275. FUNCTION MediaSetGWorlds(mh: MediaHandler; directPort: CGrafPtr; directGD: GDHandle; offscreenPort: CGrafPtr; offscreenGD: GDHandle): ComponentResult;
  276.     {$IFC NOT GENERATINGCFM}
  277.     INLINE $2F3C, $0010, $052A, $7000, $A82A;
  278.     {$ENDC}
  279. FUNCTION MediaSetVideoParam(mh: MediaHandler; whichParam: LONGINT; VAR value: INTEGER): ComponentResult;
  280.     {$IFC NOT GENERATINGCFM}
  281.     INLINE $2F3C, $0008, $052B, $7000, $A82A;
  282.     {$ENDC}
  283. FUNCTION MediaGetVideoParam(mh: MediaHandler; whichParam: LONGINT; VAR value: INTEGER): ComponentResult;
  284.     {$IFC NOT GENERATINGCFM}
  285.     INLINE $2F3C, $0008, $052C, $7000, $A82A;
  286.     {$ENDC}
  287. FUNCTION MediaCompare(mh: MediaHandler; VAR isOK: BOOLEAN; srcMedia: Media; srcMediaComponent: ComponentInstance): ComponentResult;
  288.     {$IFC NOT GENERATINGCFM}
  289.     INLINE $2F3C, $000C, $052D, $7000, $A82A;
  290.     {$ENDC}
  291.  
  292. CONST
  293.     kMediaInitializeSelect        = $0501;
  294.     kMediaSetHandlerCapabilitiesSelect = $0502;
  295.     kMediaIdleSelect            = $0503;
  296.     kMediaGetMediaInfoSelect    = $0504;
  297.     kMediaPutMediaInfoSelect    = $0505;
  298.     kMediaSetActiveSelect        = $0506;
  299.     kMediaSetRateSelect            = $0507;
  300.     kMediaGGetStatusSelect        = $0508;
  301.     kMediaTrackEditedSelect        = $0509;
  302.     kMediaSetMediaTimeScaleSelect = $050A;
  303.     kMediaSetMovieTimeScaleSelect = $050B;
  304.     kMediaSetGWorldSelect        = $050C;
  305.     kMediaSetDimensionsSelect    = $050D;
  306.     kMediaSetClipSelect            = $050E;
  307.     kMediaSetMatrixSelect        = $050F;
  308.     kMediaGetTrackOpaqueSelect    = $0510;
  309.     kMediaSetGraphicsModeSelect    = $0511;
  310.     kMediaGetGraphicsModeSelect    = $0512;
  311.     kMediaGSetVolumeSelect        = $0513;
  312.     kMediaSetSoundBalanceSelect    = $0514;
  313.     kMediaGetSoundBalanceSelect    = $0515;
  314.     kMediaGetNextBoundsChangeSelect = $0516;
  315.     kMediaGetSrcRgnSelect        = $0517;
  316.     kMediaPrerollSelect            = $0518;
  317.     kMediaSampleDescriptionChangedSelect = $0519;
  318.     kMediaHasCharacteristicSelect = $051A;
  319.     kMediaGetOffscreenBufferSizeSelect = $051B;
  320.     kMediaSetHintsSelect        = $051C;
  321.     kMediaGetNameSelect            = $051D;
  322.     kMediaForceUpdateSelect        = $051E;
  323.     kMediaGetDrawingRgnSelect    = $051F;
  324.     kMediaGSetActiveSegmentSelect = $0520;
  325.     kMediaInvalidateRegionSelect = $0521;
  326.     kMediaGetNextStepTimeSelect    = $0522;
  327.     kMediaSetNonPrimarySourceDataSelect = $0523;
  328.     kMediaChangedNonPrimarySourceSelect = $0524;
  329.     kMediaTrackReferencesChangedSelect = $0525;
  330.     kMediaGetSampleDataPointerSelect = $0526;
  331.     kMediaReleaseSampleDataPointerSelect = $0527;
  332.     kMediaTrackPropertyAtomChangedSelect = $0528;
  333.     kMediaSetTrackInputMapReferenceSelect = $0529;
  334.     kMediaSetGWorldsSelect        = $052A;
  335.     kMediaSetVideoParamSelect    = $052B;
  336.     kMediaGetVideoParamSelect    = $052C;
  337.     kMediaCompareSelect            = $052D;
  338.  
  339. {$ENDC}
  340. {$ALIGN RESET}
  341. {$POP}
  342.  
  343. {$SETC UsingIncludes := MediaHandlersIncludes}
  344.  
  345. {$ENDC} {__MEDIAHANDLERS__}
  346.  
  347. {$IFC NOT UsingIncludes}
  348.  END.
  349. {$ENDC}
  350.